【セッションレポート】Terraformによるインフラ構築の進化:組織での取り組み #cm_odyssey
7/30(火)Classmethod Odyssey ONLINE クラウド2編にて西山徳輝さん(株式会社セブン&アイ・ネットメディア クラウド・ソリューション部)が登壇されたセッション【Terraformによるインフラ構築の進化:組織での取り組み】のレポートを本記事ではお伝えします。
概要
このセッションでは、組織内でTerraformを利用してインフラを構築してきた経験を基に、効率的なインフラ構築手法と組織の変化についてお話しします。具体的なプロジェクトやモジュール化の取り組み、成功した点や直面した課題、そして学んだ教訓を紹介します。参加者は、Terraformを使ったインフラ構築のベストプラクティスや、実際の組織での適用事例を学ぶことができます。
スピーカー
- 西山 徳輝 氏
- 2022年 株式会社セブン&アイ・ネットメディア入社
- クラウド・ソリューション部所属
- 関連事業会社のサービスの設計・構築を支援
レポート
Terraform導入背景
西山氏のチームはインフラ設計・構築を行うチームで、様々な会社・部署からのクラウドのインフラ構築案件を対応しています。
Terraformの導入は、2022年に開始し、現在ではインフラ構築の中心的なツールとなっています。
Terraformを採用した理由としては、以下をあげていました。
- 組織の方針としてマルチクラウド対応を目指すことに
- 豊富なプロバイダーをサポートしている
- コミュニティの規模が大きい
- HCL言語で直感的に記述ができる
Terraform導入の狙いは、三点ありました。
- インフラ環境の変更箇所を瞬時に把握するため
- 誰がどこを変更したか把握できる状態にする
- インフラの開発効率を向上させるため
- 手順書作成やドキュメント作成にかかっていた時間を減らし、より重要なタスクに注力できるようにする
- インフラの一貫性を向上させるため
- 構築手法を統一し、インフラの品質を担保する
Terraformを導入して苦労したこと & 解決策
1点目に、「ドキュメント管理」についてです。
モジュール作成等を行った際に関連ドキュメントに反映するのに時間がかかるという課題があり、terraform-docsを使ったドキュメント自動生成で対応しました。
terraform-docsはtfファイルからドキュメントを自動生成するツールです。例えば、モジュールのVariableやOutput等の情報をMarkdown形式のドキュメントで出力することができます。
2点目は「CI/CD導入」についてです。
西山氏のチームはCI/CDの有識者が経験が少なく、CI/CD導入のハードルが高くなっていたそうです。
それに対して、プロジェクトのCI/CD導入へのStep-by-stepガイドを作成することで、導入のハードルを下げて誰でもCI/CDを導入できるようになりました。
3点目は「個別カスタマイズ」についてです。
例えば、チームAではCMSが必要だが、チームBでは不要といった個別にカスタマイズする要件がありました。
これに対して、事前に要件に応じたAMIを作成し、Terraformで参照することで対応しました。
Terraformを導入して得られた成果
「変更管理が容易になった」ことをあげていました。
Terraformでは、terraform plan
コマンドで変更前の差分を確認することができます。
この機能を使うことで、変更を加えるリソースの状況が把握できるようになりました。
続いて、「構築時間が大幅に短縮」されたことをあげていました。
これまでは、手動で環境を構築するのに2週間から4週間程度かかっていました。Terraformを導入することで、構築作業が4分程度に短縮されました。
別でTerraformコードを書く時間はかかりますが、それを考慮してもかなりの時間を短縮できています。
最後に、「インフラの一貫性が向上した」ことをあげていました。
Terraformで「インフラの型」を作成し、プロジェクト毎に複製することで誰が実行しても同じインフラ環境を構築できるようになりました。
今後の展望
現状構築チームはTerraformを使っているが、運用チームはまだ使っていないという状況です。
Terrafromを使用できる人材を増やし、運用チームを巻き込んで、運用まで一気通貫でTerraform管理したいと考えています。
セブン&アイ・ネットメディア様の社内には開発ガイドラインががあります。(例: VPCの設計方法・TGWを使った接続方法)
社内ガイドラインに準拠するモジュールを作成・利用することでインフラ構築の標準化を行いたいと考えています。
Terraformのテスト方法の確立を行いたいと考えています。
Terraformで変更を加える際に、変更によってコンプライアンスやセキュリティやデータに影響がないか不安になることがあります。
テスト方法を確立することで、テストによって内容が担保され作業の品質が向上します。
所感
Terraform導入の組織的な取り組みについて、お話いただきました。
実際に発生した課題と解決策・導入の成果等に触れており、Terraformの導入を検討している方にぜひ聞いていほしいセッションでした。
特に「CI/CD導入へのStep-by-stepガイド作成」が印象的でした。
組織でTerraformを使っていく際に、Terraformの使い方やCI/CD導入を各メンバーが学んでいく必要があります。
ガイドを作成することでメンバーは自分でキャッチアップできるようになりますし、推進する人はQAに対応する時間を減らすことができて、効率的で良いと思いました。
今後の展望であげられていたものも、現状組織でTerraformを導入している方は共感できる内容だったと思います。
特にテストの部分はまだ事例が少ない分野かと思いますので、導入された際はまたお話聞きたいです!